﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace binary
{
    public partial class ImportSingle : Form
    {
        ConfigSingle config;
        
        public ImportSingle()
        {
            InitializeComponent();
        }

        private void btDBF_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "pliki *.dbf|*.dbf";
            DialogResult result = dialog.ShowDialog();
            if(result==DialogResult.OK)
                inputFileDBF.Text = dialog.FileName;
        }

        private void btConfig_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "pliki *.xml|*.xml";
            DialogResult result = dialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                inputConfig.Text = dialog.FileName;
                config = XMLReader.getConfig(inputConfig.Text);
                if (config.isValid())
                {
                    lblServer.Text = String.Format("Serwer: {0}", config.host);
                    lblDatabase.Text = String.Format("Nazwa bazy: {0}", config.dbName);
                }
                else
                    MessageBox.Show("Nieprawidłowy plik konfiguracyjny");
            }
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (config != null)
            {
                if (!String.IsNullOrEmpty(inputFileDBF.Text))
                {
                    if (!String.IsNullOrEmpty(inputTableName.Text))
                    {
                        if (config.isValid())
                            StartLoading();
                    }
                    else MessageBox.Show("Brak nazwy importowanej tabeli", "Niepoprawna nazwa tabeli na serwerze SQL");

                }
                else
                    MessageBox.Show("Brak wybranego pliku DBF", "Brak pliku bazy danych");
            }
            else
                MessageBox.Show("Brak wybranego pliku konfiguracyjnego", "Brak pliku konfiguracyjnego");
        }


        private void StartLoading()
        {
            ImportTable form = new ImportTable(config, inputFileDBF.Text, new SingleTable { name = inputTableName.Text, destinationName = inputTableName.Text }, 1, 1);
            form.ShowDialog();
            this.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}
